var test_number = /^[0-9]*$/; //检查数字正则
var test_phone = /^[1][3-9]\d{9}$/; //检查手机号码正则
var test_number_suffix = /^\d*[0357]$/; //检查数字个位数为 0,3,5,7
var ajax_url = "/system/Api/forward";

window.getUrlParam = function (key) {
    return decodeURIComponent((new RegExp('[?|&]' + key + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null;
}

window.ajax = function (opts) {
    var bool = opts.loading === false ? opts.loading : true;
    if (bool) {
        window.loading();
    }
    opts.data["url"] = opts.url;
    $.ajax({
        url: ajax_url,
        type: opts.type ? opts.type : 'POST',
        data: opts.data ? opts.data : "",
        dataType: opts.dataType ? opts.dataType : "json",
        async: opts.type === false ? opts.type : true,
        success: function (d) {
            window.unloading();
            // 如果返回的json是字符串格式则执行下列处理方法
            var data_type = opts.dataType ? opts.dataType : "json";
            if (data_type == "json" && typeof (d) == 'string') {
                d = JSON.parse(d);  // 将字符串解析成json对象
            }
            opts.success(d);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            window.unloading();
            opts.error(XMLHttpRequest, textStatus, errorThrown);
        }
    });
}

window.poup = function(id){
    if(typeof(id) == "undefined"){
        window.custom_toast("打开弹层失败！");return;
    }
    $(id).addClass('popu-show');
}

window.poup_close = function(id){
    if(typeof(id) == "undefined"){
        window.custom_toast("关闭弹层失败！");return;
    }
    $(id).removeClass('popu-show');
}

window.loading = function () {
    $("#loading").show();
}

window.unloading = function () {
    $("#loading").hide();
}

window.getTemplate = function (tp_arr) {
    var html_str = "";
    $.each(tp_arr, function (index, url) {
        $.ajax({
            url: url,
            async: false,
            success: function (d) {
                html_str += d;
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                console.log('找不到索引（' + index + '）: ' + url + ' 模板,请检查');
            }
        });
    });
    if (html_str !== "") {
        html_str = "<div class='container'>" + html_str + "</div>";
    }
    return html_str;
}

window.custom_toast_second = 0;
window.custom_toast_timer;

window.custom_toast = function (msg) {
    var $toast = $('#custom_toast');
    /*var $css = $('#custom_toast .weui-toast');
    var $icon = $('#custom_toast .weui-icon-success-no-circle');
    if (typeof (msg) == "undefined") {
        msg = "已完成";
        $icon.show();
        $css.attr("style", "");
    } else {
        $icon.hide();
        $css.attr("style", "width: 12em; margin-left: -7em; min-height: 6em; padding:1em;");
    }*/
    $('#custom_toast .modal-body').html(msg);

    if (window.custom_toast_second == 0) {
        window.custom_toast_second = 3;
        window.custom_toast_timer = setInterval(function () {
            window.custom_toast_count_down();
        }, 1000);
    } else {
        window.custom_toast_second = 3;
    }
    $toast.show();
}

window.custom_toast_close = function () {
    if (window.custom_toast_second < 3) {
        $('#custom_toast').hide();
    }
}

window.custom_toast_count_down = function () {
    if (window.custom_toast_second > 0) {
        window.custom_toast_second--;
    } else {
        clearInterval(window.custom_toast_timer);
        window.custom_toast_close();
    }
}

window.formatMoney = function (n, tf) {
    if (typeof (tf) == 'undefined') {
        tf = 0;
    }
    if (typeof (n) != 'number') {
        return n.toFixed(tf);
    } else {
        return (n.toFixed(tf) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
    }
}

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") // ==> 2016-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      // ==> 2016-7-2 8:9:4.18
Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};

window.dateTimeFormat = function (dateTimeStr, format){
    if (!dateTimeStr) {
        return "";
    }
    if (typeof(dateTimeStr) === "string") {
        if (dateTimeStr.indexOf(".") > -1) {
            // 有些日期接口返回带有.0。
            dateTimeStr = dateTimeStr.substring(0, dateTimeStr.indexOf("."));
        }
        // 解决IOS上无法从dateStr parse 到Date类型问题
        dateTimeStr = dateTimeStr.replace(/-/g, '/');
    }
    return new Date(dateTimeStr).Format(format);
}

window.getDateNow = function (n, date_time) {
    var thisDate;
    if(typeof (date_time) == 'undefined'){
        thisDate = new Date();
    }else{
        thisDate = new Date(date_time);
    }
    if(typeof (n) == 'number'){
        thisDate.setTime(thisDate.getTime() + 24 * 60 * 60 * n * 1000);
    }
    var year = thisDate.getFullYear();
    var month = thisDate.getMonth() + 1;
    if(month < 10){
        month = '0' + month;
    }
    var date = thisDate.getDate();
    if(date < 10){
        date = '0' + date;
    }
    return year + '-' + month + '-' + date;
}

window.getDateTimeNow = function (n, date_time) {
    var thisDate;
    if(typeof (date_time) == 'undefined'){
        thisDate = new Date();
    }else{
        thisDate = new Date(date_time);
    }
    if(typeof (n) == 'number'){
        thisDate.setTime(thisDate.getTime() + 24 * 60 * 60 * n * 1000);
    }
    var year = thisDate.getFullYear();
    var month = thisDate.getMonth() + 1;
    if(month < 10){
        month = '0' + month;
    }
    var date = thisDate.getDate();
    if(date < 10){
        date = '0' + date;
    }
    return year + '-' + month + '-' + date + ' 00:00:00';
}

/**
 * 获取订单状态描述
 * @param   string  fCFlag          审核状态（0 待付款/ 1 已审核 / 2 反审核 / 3 多级审核 / 4 草稿）
 * @param   string  fProNtfFlag     生产通知状态（0 未通知 / 1 已通知 / 2 部分通知 / 3 不需生产）
 * @param   string  fOutFlag        发货状态（0 未出货 / 1 已出货 / 2 部分出货）
 * @param   string  fIfClose        订单完结状态（0 未关闭 / 1 已关闭 ）
 * @param   string  fIfCancel       订单关闭状态（0 未取消/ 1 已关取消 ）
 * @return  array                   数组列表数据
 */
window.getOrderState = function (fCFlag, fProNtfFlag, fOutFlag, fIfClose, fIfCancel) {
    var name = '无法识别';
    if (fIfCancel == "1") {
        name = '客服取消';
    } else {
        if (fIfClose == "1") {
            name = '已完结';
        } else {
            switch (fOutFlag) {
                case "0":
                    switch (fCFlag) {
                        case "0":
                            name = '待付款';
                            break;
                        case "1":
                        case "2":
                            name = '已付款';
                            switch (fProNtfFlag) {
                                case "0":
                                    name = '已付款';
                                    break;
                                case "2":
                                    name = '排产中';
                                    break;
                                case "1":
                                case "3":
                                    name = '已排产';
                                    break;
                            }
                            break;
                        default:
                            name = '待审核';
                            break;
                    }
                    break;
                case "1":
                    name = '已发货';
                    break;
                case "2":
                    name = '发货中';
                    break;
            }
        }
    }
    return name;
}

window.bottom_menu = function (bool) {
    if (typeof (bool) == 'undefined') {
        bool = true;
    }
    window.current['bottomNavbarMemu']['settingMenu']['isShow'] = bool;
}

window.check_phone_no = function (phone_no) {
    var bool = false;
    if(typeof (phone_no) == 'undefined' || phone_no == '') {
        window.custom_toast('请正确输入电话号码！');
        bool = true;
    }
    var msg_str = '电话号码只能输入数字！';
    if(phone_no.indexOf("-") > 0 ){
        //if(!(/^0\d{2,4}-?\d{6,8}$/.test(phone_no))){
        window.custom_toast(msg_str);
        bool = true;
        //}
    }else{
        //if(!(test_phone.test(phone_no))){
        if(!(test_number.test(phone_no))){
            window.custom_toast(msg_str);
            bool = true;
        }
    }
    return bool;
}

window.to_page = function (url) {
    if(typeof (url) != 'undefined'){
        window.location.href = url;
    }
}